class_name ApplyDamageImmunityEffect
extends Effect

# 应用伤害免疫效果
# 功能：为玩家添加伤害免疫状态

func execute(targets: Array[Node]) -> void:
	print("🛡️ ApplyDamageImmunityEffect.execute() 被调用")
	
	for target in targets:
		if not target or not is_instance_valid(target):
			continue
		if target is Player:
			_apply_damage_immunity(target)
			if sound:
				SFXPlayer.play(sound)
		else:
			print("❌ 目标不是Player类型: %s" % target.get_class())

func _apply_damage_immunity(player: Player) -> void:
	print("🛡️ 应用伤害免疫效果，玩家: %s" % player.name)
	
	# 获取伤害修改器
	var dmg_taken_modifier: Modifier = player.modifier_handler.get_modifier(Modifier.Type.DMG_TAKEN)
	if dmg_taken_modifier:
		# 创建伤害免疫修改器
		var immunity_value := ModifierValue.create_new_modifier(
			"withered_wood_immunity",
			ModifierValue.Type.FLAT
		)
		immunity_value.flat_value = -999  # 大幅减少伤害，实现免疫效果
		
		# 添加修改器
		dmg_taken_modifier.add_new_value(immunity_value)
		print("🛡️ 已为 %s 添加伤害免疫效果" % player.name)
	else:
		print("❌ 无法获取伤害修改器")

# 配置方法 - 允许外部设置参数
func configure() -> void:
	print("⚙️ ApplyDamageImmunityEffect 配置完成") 
